
spi-test:     file format elf64-x86-64


Disassembly of section .init:

0000000000001000 <_init>:
    1000:	f3 0f 1e fa          	endbr64 
    1004:	48 83 ec 08          	sub    $0x8,%rsp
    1008:	48 8b 05 c1 2f 00 00 	mov    0x2fc1(%rip),%rax        # 3fd0 <__gmon_start__>
    100f:	48 85 c0             	test   %rax,%rax
    1012:	74 02                	je     1016 <_init+0x16>
    1014:	ff d0                	callq  *%rax
    1016:	48 83 c4 08          	add    $0x8,%rsp
    101a:	c3                   	retq   

Disassembly of section .plt:

0000000000001020 <.plt>:
    1020:	ff 35 e2 2e 00 00    	pushq  0x2ee2(%rip)        # 3f08 <_GLOBAL_OFFSET_TABLE_+0x8>
    1026:	f2 ff 25 e3 2e 00 00 	bnd jmpq *0x2ee3(%rip)        # 3f10 <_GLOBAL_OFFSET_TABLE_+0x10>
    102d:	0f 1f 00             	nopl   (%rax)
    1030:	f3 0f 1e fa          	endbr64 
    1034:	68 00 00 00 00       	pushq  $0x0
    1039:	f2 e9 e1 ff ff ff    	bnd jmpq 1020 <.plt>
    103f:	90                   	nop
    1040:	f3 0f 1e fa          	endbr64 
    1044:	68 01 00 00 00       	pushq  $0x1
    1049:	f2 e9 d1 ff ff ff    	bnd jmpq 1020 <.plt>
    104f:	90                   	nop
    1050:	f3 0f 1e fa          	endbr64 
    1054:	68 02 00 00 00       	pushq  $0x2
    1059:	f2 e9 c1 ff ff ff    	bnd jmpq 1020 <.plt>
    105f:	90                   	nop
    1060:	f3 0f 1e fa          	endbr64 
    1064:	68 03 00 00 00       	pushq  $0x3
    1069:	f2 e9 b1 ff ff ff    	bnd jmpq 1020 <.plt>
    106f:	90                   	nop
    1070:	f3 0f 1e fa          	endbr64 
    1074:	68 04 00 00 00       	pushq  $0x4
    1079:	f2 e9 a1 ff ff ff    	bnd jmpq 1020 <.plt>
    107f:	90                   	nop
    1080:	f3 0f 1e fa          	endbr64 
    1084:	68 05 00 00 00       	pushq  $0x5
    1089:	f2 e9 91 ff ff ff    	bnd jmpq 1020 <.plt>
    108f:	90                   	nop
    1090:	f3 0f 1e fa          	endbr64 
    1094:	68 06 00 00 00       	pushq  $0x6
    1099:	f2 e9 81 ff ff ff    	bnd jmpq 1020 <.plt>
    109f:	90                   	nop
    10a0:	f3 0f 1e fa          	endbr64 
    10a4:	68 07 00 00 00       	pushq  $0x7
    10a9:	f2 e9 71 ff ff ff    	bnd jmpq 1020 <.plt>
    10af:	90                   	nop
    10b0:	f3 0f 1e fa          	endbr64 
    10b4:	68 08 00 00 00       	pushq  $0x8
    10b9:	f2 e9 61 ff ff ff    	bnd jmpq 1020 <.plt>
    10bf:	90                   	nop
    10c0:	f3 0f 1e fa          	endbr64 
    10c4:	68 09 00 00 00       	pushq  $0x9
    10c9:	f2 e9 51 ff ff ff    	bnd jmpq 1020 <.plt>
    10cf:	90                   	nop
    10d0:	f3 0f 1e fa          	endbr64 
    10d4:	68 0a 00 00 00       	pushq  $0xa
    10d9:	f2 e9 41 ff ff ff    	bnd jmpq 1020 <.plt>
    10df:	90                   	nop
    10e0:	f3 0f 1e fa          	endbr64 
    10e4:	68 0b 00 00 00       	pushq  $0xb
    10e9:	f2 e9 31 ff ff ff    	bnd jmpq 1020 <.plt>
    10ef:	90                   	nop
    10f0:	f3 0f 1e fa          	endbr64 
    10f4:	68 0c 00 00 00       	pushq  $0xc
    10f9:	f2 e9 21 ff ff ff    	bnd jmpq 1020 <.plt>
    10ff:	90                   	nop
    1100:	f3 0f 1e fa          	endbr64 
    1104:	68 0d 00 00 00       	pushq  $0xd
    1109:	f2 e9 11 ff ff ff    	bnd jmpq 1020 <.plt>
    110f:	90                   	nop
    1110:	f3 0f 1e fa          	endbr64 
    1114:	68 0e 00 00 00       	pushq  $0xe
    1119:	f2 e9 01 ff ff ff    	bnd jmpq 1020 <.plt>
    111f:	90                   	nop
    1120:	f3 0f 1e fa          	endbr64 
    1124:	68 0f 00 00 00       	pushq  $0xf
    1129:	f2 e9 f1 fe ff ff    	bnd jmpq 1020 <.plt>
    112f:	90                   	nop
    1130:	f3 0f 1e fa          	endbr64 
    1134:	68 10 00 00 00       	pushq  $0x10
    1139:	f2 e9 e1 fe ff ff    	bnd jmpq 1020 <.plt>
    113f:	90                   	nop
    1140:	f3 0f 1e fa          	endbr64 
    1144:	68 11 00 00 00       	pushq  $0x11
    1149:	f2 e9 d1 fe ff ff    	bnd jmpq 1020 <.plt>
    114f:	90                   	nop
    1150:	f3 0f 1e fa          	endbr64 
    1154:	68 12 00 00 00       	pushq  $0x12
    1159:	f2 e9 c1 fe ff ff    	bnd jmpq 1020 <.plt>
    115f:	90                   	nop
    1160:	f3 0f 1e fa          	endbr64 
    1164:	68 13 00 00 00       	pushq  $0x13
    1169:	f2 e9 b1 fe ff ff    	bnd jmpq 1020 <.plt>
    116f:	90                   	nop
    1170:	f3 0f 1e fa          	endbr64 
    1174:	68 14 00 00 00       	pushq  $0x14
    1179:	f2 e9 a1 fe ff ff    	bnd jmpq 1020 <.plt>
    117f:	90                   	nop

Disassembly of section .plt.got:

0000000000001180 <__cxa_finalize@plt>:
    1180:	f3 0f 1e fa          	endbr64 
    1184:	f2 ff 25 55 2e 00 00 	bnd jmpq *0x2e55(%rip)        # 3fe0 <__cxa_finalize@GLIBC_2.2.5>
    118b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

Disassembly of section .plt.sec:

0000000000001190 <putchar@plt>:
    1190:	f3 0f 1e fa          	endbr64 
    1194:	f2 ff 25 7d 2d 00 00 	bnd jmpq *0x2d7d(%rip)        # 3f18 <putchar@GLIBC_2.2.5>
    119b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011a0 <abort@plt>:
    11a0:	f3 0f 1e fa          	endbr64 
    11a4:	f2 ff 25 75 2d 00 00 	bnd jmpq *0x2d75(%rip)        # 3f20 <abort@GLIBC_2.2.5>
    11ab:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011b0 <puts@plt>:
    11b0:	f3 0f 1e fa          	endbr64 
    11b4:	f2 ff 25 6d 2d 00 00 	bnd jmpq *0x2d6d(%rip)        # 3f28 <puts@GLIBC_2.2.5>
    11bb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011c0 <ferror@plt>:
    11c0:	f3 0f 1e fa          	endbr64 
    11c4:	f2 ff 25 65 2d 00 00 	bnd jmpq *0x2d65(%rip)        # 3f30 <ferror@GLIBC_2.2.5>
    11cb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011d0 <fread@plt>:
    11d0:	f3 0f 1e fa          	endbr64 
    11d4:	f2 ff 25 5d 2d 00 00 	bnd jmpq *0x2d5d(%rip)        # 3f38 <fread@GLIBC_2.2.5>
    11db:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011e0 <fclose@plt>:
    11e0:	f3 0f 1e fa          	endbr64 
    11e4:	f2 ff 25 55 2d 00 00 	bnd jmpq *0x2d55(%rip)        # 3f40 <fclose@GLIBC_2.2.5>
    11eb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011f0 <__stack_chk_fail@plt>:
    11f0:	f3 0f 1e fa          	endbr64 
    11f4:	f2 ff 25 4d 2d 00 00 	bnd jmpq *0x2d4d(%rip)        # 3f48 <__stack_chk_fail@GLIBC_2.4>
    11fb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001200 <getopt_long@plt>:
    1200:	f3 0f 1e fa          	endbr64 
    1204:	f2 ff 25 45 2d 00 00 	bnd jmpq *0x2d45(%rip)        # 3f50 <getopt_long@GLIBC_2.2.5>
    120b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001210 <printf@plt>:
    1210:	f3 0f 1e fa          	endbr64 
    1214:	f2 ff 25 3d 2d 00 00 	bnd jmpq *0x2d3d(%rip)        # 3f58 <printf@GLIBC_2.2.5>
    121b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001220 <memset@plt>:
    1220:	f3 0f 1e fa          	endbr64 
    1224:	f2 ff 25 35 2d 00 00 	bnd jmpq *0x2d35(%rip)        # 3f60 <memset@GLIBC_2.2.5>
    122b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001230 <ioctl@plt>:
    1230:	f3 0f 1e fa          	endbr64 
    1234:	f2 ff 25 2d 2d 00 00 	bnd jmpq *0x2d2d(%rip)        # 3f68 <ioctl@GLIBC_2.2.5>
    123b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001240 <close@plt>:
    1240:	f3 0f 1e fa          	endbr64 
    1244:	f2 ff 25 25 2d 00 00 	bnd jmpq *0x2d25(%rip)        # 3f70 <close@GLIBC_2.2.5>
    124b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001250 <strtol@plt>:
    1250:	f3 0f 1e fa          	endbr64 
    1254:	f2 ff 25 1d 2d 00 00 	bnd jmpq *0x2d1d(%rip)        # 3f78 <strtol@GLIBC_2.2.5>
    125b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001260 <memcpy@plt>:
    1260:	f3 0f 1e fa          	endbr64 
    1264:	f2 ff 25 15 2d 00 00 	bnd jmpq *0x2d15(%rip)        # 3f80 <memcpy@GLIBC_2.14>
    126b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001270 <malloc@plt>:
    1270:	f3 0f 1e fa          	endbr64 
    1274:	f2 ff 25 0d 2d 00 00 	bnd jmpq *0x2d0d(%rip)        # 3f88 <malloc@GLIBC_2.2.5>
    127b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001280 <realloc@plt>:
    1280:	f3 0f 1e fa          	endbr64 
    1284:	f2 ff 25 05 2d 00 00 	bnd jmpq *0x2d05(%rip)        # 3f90 <realloc@GLIBC_2.2.5>
    128b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001290 <open@plt>:
    1290:	f3 0f 1e fa          	endbr64 
    1294:	f2 ff 25 fd 2c 00 00 	bnd jmpq *0x2cfd(%rip)        # 3f98 <open@GLIBC_2.2.5>
    129b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000012a0 <fopen@plt>:
    12a0:	f3 0f 1e fa          	endbr64 
    12a4:	f2 ff 25 f5 2c 00 00 	bnd jmpq *0x2cf5(%rip)        # 3fa0 <fopen@GLIBC_2.2.5>
    12ab:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000012b0 <perror@plt>:
    12b0:	f3 0f 1e fa          	endbr64 
    12b4:	f2 ff 25 ed 2c 00 00 	bnd jmpq *0x2ced(%rip)        # 3fa8 <perror@GLIBC_2.2.5>
    12bb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000012c0 <strtok@plt>:
    12c0:	f3 0f 1e fa          	endbr64 
    12c4:	f2 ff 25 e5 2c 00 00 	bnd jmpq *0x2ce5(%rip)        # 3fb0 <strtok@GLIBC_2.2.5>
    12cb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000012d0 <exit@plt>:
    12d0:	f3 0f 1e fa          	endbr64 
    12d4:	f2 ff 25 dd 2c 00 00 	bnd jmpq *0x2cdd(%rip)        # 3fb8 <exit@GLIBC_2.2.5>
    12db:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

Disassembly of section .text:

00000000000012e0 <_start>:
    12e0:	f3 0f 1e fa          	endbr64 
    12e4:	31 ed                	xor    %ebp,%ebp
    12e6:	49 89 d1             	mov    %rdx,%r9
    12e9:	5e                   	pop    %rsi
    12ea:	48 89 e2             	mov    %rsp,%rdx
    12ed:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
    12f1:	50                   	push   %rax
    12f2:	54                   	push   %rsp
    12f3:	4c 8d 05 86 0a 00 00 	lea    0xa86(%rip),%r8        # 1d80 <__libc_csu_fini>
    12fa:	48 8d 0d 0f 0a 00 00 	lea    0xa0f(%rip),%rcx        # 1d10 <__libc_csu_init>
    1301:	48 8d 3d d8 07 00 00 	lea    0x7d8(%rip),%rdi        # 1ae0 <main>
    1308:	ff 15 ba 2c 00 00    	callq  *0x2cba(%rip)        # 3fc8 <__libc_start_main@GLIBC_2.2.5>
    130e:	f4                   	hlt    
    130f:	90                   	nop

0000000000001310 <deregister_tm_clones>:
    1310:	48 8d 3d 09 2d 00 00 	lea    0x2d09(%rip),%rdi        # 4020 <optind@@GLIBC_2.2.5>
    1317:	48 8d 05 02 2d 00 00 	lea    0x2d02(%rip),%rax        # 4020 <optind@@GLIBC_2.2.5>
    131e:	48 39 f8             	cmp    %rdi,%rax
    1321:	74 15                	je     1338 <deregister_tm_clones+0x28>
    1323:	48 8b 05 96 2c 00 00 	mov    0x2c96(%rip),%rax        # 3fc0 <_ITM_deregisterTMCloneTable>
    132a:	48 85 c0             	test   %rax,%rax
    132d:	74 09                	je     1338 <deregister_tm_clones+0x28>
    132f:	ff e0                	jmpq   *%rax
    1331:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
    1338:	c3                   	retq   
    1339:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000001340 <register_tm_clones>:
    1340:	48 8d 3d d9 2c 00 00 	lea    0x2cd9(%rip),%rdi        # 4020 <optind@@GLIBC_2.2.5>
    1347:	48 8d 35 d2 2c 00 00 	lea    0x2cd2(%rip),%rsi        # 4020 <optind@@GLIBC_2.2.5>
    134e:	48 29 fe             	sub    %rdi,%rsi
    1351:	48 89 f0             	mov    %rsi,%rax
    1354:	48 c1 ee 3f          	shr    $0x3f,%rsi
    1358:	48 c1 f8 03          	sar    $0x3,%rax
    135c:	48 01 c6             	add    %rax,%rsi
    135f:	48 d1 fe             	sar    %rsi
    1362:	74 14                	je     1378 <register_tm_clones+0x38>
    1364:	48 8b 05 6d 2c 00 00 	mov    0x2c6d(%rip),%rax        # 3fd8 <_ITM_registerTMCloneTable>
    136b:	48 85 c0             	test   %rax,%rax
    136e:	74 08                	je     1378 <register_tm_clones+0x38>
    1370:	ff e0                	jmpq   *%rax
    1372:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
    1378:	c3                   	retq   
    1379:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000001380 <__do_global_dtors_aux>:
    1380:	f3 0f 1e fa          	endbr64 
    1384:	80 3d a5 2c 00 00 00 	cmpb   $0x0,0x2ca5(%rip)        # 4030 <completed.8061>
    138b:	75 2b                	jne    13b8 <__do_global_dtors_aux+0x38>
    138d:	55                   	push   %rbp
    138e:	48 83 3d 4a 2c 00 00 	cmpq   $0x0,0x2c4a(%rip)        # 3fe0 <__cxa_finalize@GLIBC_2.2.5>
    1395:	00 
    1396:	48 89 e5             	mov    %rsp,%rbp
    1399:	74 0c                	je     13a7 <__do_global_dtors_aux+0x27>
    139b:	48 8b 3d 66 2c 00 00 	mov    0x2c66(%rip),%rdi        # 4008 <__dso_handle>
    13a2:	e8 d9 fd ff ff       	callq  1180 <__cxa_finalize@plt>
    13a7:	e8 64 ff ff ff       	callq  1310 <deregister_tm_clones>
    13ac:	c6 05 7d 2c 00 00 01 	movb   $0x1,0x2c7d(%rip)        # 4030 <completed.8061>
    13b3:	5d                   	pop    %rbp
    13b4:	c3                   	retq   
    13b5:	0f 1f 00             	nopl   (%rax)
    13b8:	c3                   	retq   
    13b9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000000013c0 <frame_dummy>:
    13c0:	f3 0f 1e fa          	endbr64 
    13c4:	e9 77 ff ff ff       	jmpq   1340 <register_tm_clones>

00000000000013c9 <pabort>:
    13c9:	f3 0f 1e fa          	endbr64 
    13cd:	55                   	push   %rbp
    13ce:	48 89 e5             	mov    %rsp,%rbp
    13d1:	48 83 ec 10          	sub    $0x10,%rsp
    13d5:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)
    13d9:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    13dd:	48 89 c7             	mov    %rax,%rdi
    13e0:	e8 cb fe ff ff       	callq  12b0 <perror@plt>
    13e5:	e8 b6 fd ff ff       	callq  11a0 <abort@plt>

00000000000013ea <add_transfer>:
    13ea:	f3 0f 1e fa          	endbr64 
    13ee:	55                   	push   %rbp
    13ef:	48 89 e5             	mov    %rsp,%rbp
    13f2:	48 83 ec 30          	sub    $0x30,%rsp
    13f6:	48 89 7d d8          	mov    %rdi,-0x28(%rbp)
    13fa:	89 75 d4             	mov    %esi,-0x2c(%rbp)
    13fd:	8b 45 d4             	mov    -0x2c(%rbp),%eax
    1400:	48 98                	cltq   
    1402:	48 89 c7             	mov    %rax,%rdi
    1405:	e8 66 fe ff ff       	callq  1270 <malloc@plt>
    140a:	48 89 45 e8          	mov    %rax,-0x18(%rbp)
    140e:	8b 45 d4             	mov    -0x2c(%rbp),%eax
    1411:	48 98                	cltq   
    1413:	48 89 c7             	mov    %rax,%rdi
    1416:	e8 55 fe ff ff       	callq  1270 <malloc@plt>
    141b:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
    141f:	8b 45 d4             	mov    -0x2c(%rbp),%eax
    1422:	48 63 d0             	movslq %eax,%rdx
    1425:	48 8b 4d d8          	mov    -0x28(%rbp),%rcx
    1429:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
    142d:	48 89 ce             	mov    %rcx,%rsi
    1430:	48 89 c7             	mov    %rax,%rdi
    1433:	e8 28 fe ff ff       	callq  1260 <memcpy@plt>
    1438:	8b 45 d4             	mov    -0x2c(%rbp),%eax
    143b:	48 63 d0             	movslq %eax,%rdx
    143e:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
    1442:	be ff 00 00 00       	mov    $0xff,%esi
    1447:	48 89 c7             	mov    %rax,%rdi
    144a:	e8 d1 fd ff ff       	callq  1220 <memset@plt>
    144f:	8b 05 f3 2b 00 00    	mov    0x2bf3(%rip),%eax        # 4048 <ntransfers>
    1455:	83 c0 01             	add    $0x1,%eax
    1458:	89 05 ea 2b 00 00    	mov    %eax,0x2bea(%rip)        # 4048 <ntransfers>
    145e:	8b 05 e4 2b 00 00    	mov    0x2be4(%rip),%eax        # 4048 <ntransfers>
    1464:	48 98                	cltq   
    1466:	48 c1 e0 05          	shl    $0x5,%rax
    146a:	48 89 c2             	mov    %rax,%rdx
    146d:	48 8b 05 cc 2b 00 00 	mov    0x2bcc(%rip),%rax        # 4040 <spi_xfrs>
    1474:	48 89 d6             	mov    %rdx,%rsi
    1477:	48 89 c7             	mov    %rax,%rdi
    147a:	e8 01 fe ff ff       	callq  1280 <realloc@plt>
    147f:	48 89 05 ba 2b 00 00 	mov    %rax,0x2bba(%rip)        # 4040 <spi_xfrs>
    1486:	48 8b 05 b3 2b 00 00 	mov    0x2bb3(%rip),%rax        # 4040 <spi_xfrs>
    148d:	8b 15 b5 2b 00 00    	mov    0x2bb5(%rip),%edx        # 4048 <ntransfers>
    1493:	48 63 d2             	movslq %edx,%rdx
    1496:	48 c1 e2 05          	shl    $0x5,%rdx
    149a:	48 83 ea 20          	sub    $0x20,%rdx
    149e:	48 01 d0             	add    %rdx,%rax
    14a1:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    14a5:	48 8b 55 e8          	mov    -0x18(%rbp),%rdx
    14a9:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    14ad:	48 89 10             	mov    %rdx,(%rax)
    14b0:	48 8b 55 f0          	mov    -0x10(%rbp),%rdx
    14b4:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    14b8:	48 89 50 08          	mov    %rdx,0x8(%rax)
    14bc:	8b 55 d4             	mov    -0x2c(%rbp),%edx
    14bf:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    14c3:	89 50 10             	mov    %edx,0x10(%rax)
    14c6:	8b 15 48 2b 00 00    	mov    0x2b48(%rip),%edx        # 4014 <speed>
    14cc:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    14d0:	89 50 14             	mov    %edx,0x14(%rax)
    14d3:	0f b7 15 60 2b 00 00 	movzwl 0x2b60(%rip),%edx        # 403a <delay>
    14da:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    14de:	66 89 50 18          	mov    %dx,0x18(%rax)
    14e2:	0f b6 15 27 2b 00 00 	movzbl 0x2b27(%rip),%edx        # 4010 <bits>
    14e9:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    14ed:	88 50 1a             	mov    %dl,0x1a(%rax)
    14f0:	8b 05 56 2b 00 00    	mov    0x2b56(%rip),%eax        # 404c <toggle_cs>
    14f6:	89 c2                	mov    %eax,%edx
    14f8:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    14fc:	88 50 1b             	mov    %dl,0x1b(%rax)
    14ff:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1503:	c6 40 1f 00          	movb   $0x0,0x1f(%rax)
    1507:	90                   	nop
    1508:	c9                   	leaveq 
    1509:	c3                   	retq   

000000000000150a <show_spi_xfrs>:
    150a:	f3 0f 1e fa          	endbr64 
    150e:	55                   	push   %rbp
    150f:	48 89 e5             	mov    %rsp,%rbp
    1512:	48 83 ec 10          	sub    $0x10,%rsp
    1516:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%rbp)
    151d:	e9 bb 00 00 00       	jmpq   15dd <show_spi_xfrs+0xd3>
    1522:	48 8b 05 17 2b 00 00 	mov    0x2b17(%rip),%rax        # 4040 <spi_xfrs>
    1529:	8b 55 f0             	mov    -0x10(%rbp),%edx
    152c:	48 63 d2             	movslq %edx,%rdx
    152f:	48 c1 e2 05          	shl    $0x5,%rdx
    1533:	48 01 d0             	add    %rdx,%rax
    1536:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    153a:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%rbp)
    1541:	eb 2d                	jmp    1570 <show_spi_xfrs+0x66>
    1543:	8b 45 f4             	mov    -0xc(%rbp),%eax
    1546:	48 63 d0             	movslq %eax,%rdx
    1549:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    154d:	48 8b 00             	mov    (%rax),%rax
    1550:	48 01 d0             	add    %rdx,%rax
    1553:	0f b6 00             	movzbl (%rax),%eax
    1556:	0f b6 c0             	movzbl %al,%eax
    1559:	89 c6                	mov    %eax,%esi
    155b:	48 8d 3d b5 0a 00 00 	lea    0xab5(%rip),%rdi        # 2017 <_IO_stdin_used+0x17>
    1562:	b8 00 00 00 00       	mov    $0x0,%eax
    1567:	e8 a4 fc ff ff       	callq  1210 <printf@plt>
    156c:	83 45 f4 01          	addl   $0x1,-0xc(%rbp)
    1570:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1574:	8b 50 10             	mov    0x10(%rax),%edx
    1577:	8b 45 f4             	mov    -0xc(%rbp),%eax
    157a:	39 c2                	cmp    %eax,%edx
    157c:	77 c5                	ja     1543 <show_spi_xfrs+0x39>
    157e:	bf 0a 00 00 00       	mov    $0xa,%edi
    1583:	e8 08 fc ff ff       	callq  1190 <putchar@plt>
    1588:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%rbp)
    158f:	eb 2e                	jmp    15bf <show_spi_xfrs+0xb5>
    1591:	8b 45 f4             	mov    -0xc(%rbp),%eax
    1594:	48 63 d0             	movslq %eax,%rdx
    1597:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    159b:	48 8b 40 08          	mov    0x8(%rax),%rax
    159f:	48 01 d0             	add    %rdx,%rax
    15a2:	0f b6 00             	movzbl (%rax),%eax
    15a5:	0f b6 c0             	movzbl %al,%eax
    15a8:	89 c6                	mov    %eax,%esi
    15aa:	48 8d 3d 66 0a 00 00 	lea    0xa66(%rip),%rdi        # 2017 <_IO_stdin_used+0x17>
    15b1:	b8 00 00 00 00       	mov    $0x0,%eax
    15b6:	e8 55 fc ff ff       	callq  1210 <printf@plt>
    15bb:	83 45 f4 01          	addl   $0x1,-0xc(%rbp)
    15bf:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    15c3:	8b 50 10             	mov    0x10(%rax),%edx
    15c6:	8b 45 f4             	mov    -0xc(%rbp),%eax
    15c9:	39 c2                	cmp    %eax,%edx
    15cb:	77 c4                	ja     1591 <show_spi_xfrs+0x87>
    15cd:	48 8d 3d 49 0a 00 00 	lea    0xa49(%rip),%rdi        # 201d <_IO_stdin_used+0x1d>
    15d4:	e8 d7 fb ff ff       	callq  11b0 <puts@plt>
    15d9:	83 45 f0 01          	addl   $0x1,-0x10(%rbp)
    15dd:	8b 05 65 2a 00 00    	mov    0x2a65(%rip),%eax        # 4048 <ntransfers>
    15e3:	39 45 f0             	cmp    %eax,-0x10(%rbp)
    15e6:	0f 8c 36 ff ff ff    	jl     1522 <show_spi_xfrs+0x18>
    15ec:	90                   	nop
    15ed:	90                   	nop
    15ee:	c9                   	leaveq 
    15ef:	c3                   	retq   

00000000000015f0 <transfer>:
    15f0:	f3 0f 1e fa          	endbr64 
    15f4:	55                   	push   %rbp
    15f5:	48 89 e5             	mov    %rsp,%rbp
    15f8:	48 83 ec 20          	sub    $0x20,%rsp
    15fc:	89 7d ec             	mov    %edi,-0x14(%rbp)
    15ff:	48 8b 15 3a 2a 00 00 	mov    0x2a3a(%rip),%rdx        # 4040 <spi_xfrs>
    1606:	8b 05 3c 2a 00 00    	mov    0x2a3c(%rip),%eax        # 4048 <ntransfers>
    160c:	48 98                	cltq   
    160e:	48 c1 e0 05          	shl    $0x5,%rax
    1612:	48 3d ff 3f 00 00    	cmp    $0x3fff,%rax
    1618:	77 0e                	ja     1628 <transfer+0x38>
    161a:	8b 05 28 2a 00 00    	mov    0x2a28(%rip),%eax        # 4048 <ntransfers>
    1620:	48 98                	cltq   
    1622:	48 c1 e0 05          	shl    $0x5,%rax
    1626:	eb 05                	jmp    162d <transfer+0x3d>
    1628:	b8 00 00 00 00       	mov    $0x0,%eax
    162d:	48 c1 e0 10          	shl    $0x10,%rax
    1631:	48 0d 00 6b 00 40    	or     $0x40006b00,%rax
    1637:	48 89 c1             	mov    %rax,%rcx
    163a:	8b 45 ec             	mov    -0x14(%rbp),%eax
    163d:	48 89 ce             	mov    %rcx,%rsi
    1640:	89 c7                	mov    %eax,%edi
    1642:	b8 00 00 00 00       	mov    $0x0,%eax
    1647:	e8 e4 fb ff ff       	callq  1230 <ioctl@plt>
    164c:	89 45 fc             	mov    %eax,-0x4(%rbp)
    164f:	83 7d fc 00          	cmpl   $0x0,-0x4(%rbp)
    1653:	7f 0c                	jg     1661 <transfer+0x71>
    1655:	48 8d 3d c3 09 00 00 	lea    0x9c3(%rip),%rdi        # 201f <_IO_stdin_used+0x1f>
    165c:	e8 68 fd ff ff       	callq  13c9 <pabort>
    1661:	90                   	nop
    1662:	c9                   	leaveq 
    1663:	c3                   	retq   

0000000000001664 <print_usage>:
    1664:	f3 0f 1e fa          	endbr64 
    1668:	55                   	push   %rbp
    1669:	48 89 e5             	mov    %rsp,%rbp
    166c:	48 83 ec 10          	sub    $0x10,%rsp
    1670:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)
    1674:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1678:	48 89 c6             	mov    %rax,%rsi
    167b:	48 8d 3d b6 09 00 00 	lea    0x9b6(%rip),%rdi        # 2038 <_IO_stdin_used+0x38>
    1682:	b8 00 00 00 00       	mov    $0x0,%eax
    1687:	e8 84 fb ff ff       	callq  1210 <printf@plt>
    168c:	48 8d 3d cd 09 00 00 	lea    0x9cd(%rip),%rdi        # 2060 <_IO_stdin_used+0x60>
    1693:	e8 18 fb ff ff       	callq  11b0 <puts@plt>
    1698:	bf 01 00 00 00       	mov    $0x1,%edi
    169d:	e8 2e fc ff ff       	callq  12d0 <exit@plt>

00000000000016a2 <parse_opts>:
    16a2:	f3 0f 1e fa          	endbr64 
    16a6:	55                   	push   %rbp
    16a7:	48 89 e5             	mov    %rsp,%rbp
    16aa:	48 83 ec 20          	sub    $0x20,%rsp
    16ae:	89 7d ec             	mov    %edi,-0x14(%rbp)
    16b1:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
    16b5:	48 8b 75 e0          	mov    -0x20(%rbp),%rsi
    16b9:	8b 45 ec             	mov    -0x14(%rbp),%eax
    16bc:	41 b8 00 00 00 00    	mov    $0x0,%r8d
    16c2:	48 8d 0d 57 24 00 00 	lea    0x2457(%rip),%rcx        # 3b20 <lopts.3828>
    16c9:	48 8d 15 9a 0b 00 00 	lea    0xb9a(%rip),%rdx        # 226a <_IO_stdin_used+0x26a>
    16d0:	89 c7                	mov    %eax,%edi
    16d2:	e8 29 fb ff ff       	callq  1200 <getopt_long@plt>
    16d7:	89 45 fc             	mov    %eax,-0x4(%rbp)
    16da:	83 7d fc ff          	cmpl   $0xffffffff,-0x4(%rbp)
    16de:	0f 84 8d 01 00 00    	je     1871 <parse_opts+0x1cf>
    16e4:	8b 45 fc             	mov    -0x4(%rbp),%eax
    16e7:	83 e8 33             	sub    $0x33,%eax
    16ea:	83 f8 40             	cmp    $0x40,%eax
    16ed:	0f 87 69 01 00 00    	ja     185c <parse_opts+0x1ba>
    16f3:	89 c0                	mov    %eax,%eax
    16f5:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
    16fc:	00 
    16fd:	48 8d 05 7c 0b 00 00 	lea    0xb7c(%rip),%rax        # 2280 <_IO_stdin_used+0x280>
    1704:	8b 04 02             	mov    (%rdx,%rax,1),%eax
    1707:	48 98                	cltq   
    1709:	48 8d 15 70 0b 00 00 	lea    0xb70(%rip),%rdx        # 2280 <_IO_stdin_used+0x280>
    1710:	48 01 d0             	add    %rdx,%rax
    1713:	3e ff e0             	notrack jmpq *%rax
    1716:	48 8b 05 0b 29 00 00 	mov    0x290b(%rip),%rax        # 4028 <optarg@@GLIBC_2.2.5>
    171d:	48 89 05 f4 28 00 00 	mov    %rax,0x28f4(%rip)        # 4018 <device>
    1724:	e9 43 01 00 00       	jmpq   186c <parse_opts+0x1ca>
    1729:	48 8b 05 f8 28 00 00 	mov    0x28f8(%rip),%rax        # 4028 <optarg@@GLIBC_2.2.5>
    1730:	ba 00 00 00 00       	mov    $0x0,%edx
    1735:	be 00 00 00 00       	mov    $0x0,%esi
    173a:	48 89 c7             	mov    %rax,%rdi
    173d:	e8 0e fb ff ff       	callq  1250 <strtol@plt>
    1742:	89 05 cc 28 00 00    	mov    %eax,0x28cc(%rip)        # 4014 <speed>
    1748:	e9 1f 01 00 00       	jmpq   186c <parse_opts+0x1ca>
    174d:	48 8b 05 d4 28 00 00 	mov    0x28d4(%rip),%rax        # 4028 <optarg@@GLIBC_2.2.5>
    1754:	ba 00 00 00 00       	mov    $0x0,%edx
    1759:	be 00 00 00 00       	mov    $0x0,%esi
    175e:	48 89 c7             	mov    %rax,%rdi
    1761:	e8 ea fa ff ff       	callq  1250 <strtol@plt>
    1766:	66 89 05 cd 28 00 00 	mov    %ax,0x28cd(%rip)        # 403a <delay>
    176d:	e9 fa 00 00 00       	jmpq   186c <parse_opts+0x1ca>
    1772:	48 8b 05 af 28 00 00 	mov    0x28af(%rip),%rax        # 4028 <optarg@@GLIBC_2.2.5>
    1779:	ba 00 00 00 00       	mov    $0x0,%edx
    177e:	be 00 00 00 00       	mov    $0x0,%esi
    1783:	48 89 c7             	mov    %rax,%rdi
    1786:	e8 c5 fa ff ff       	callq  1250 <strtol@plt>
    178b:	88 05 7f 28 00 00    	mov    %al,0x287f(%rip)        # 4010 <bits>
    1791:	e9 d6 00 00 00       	jmpq   186c <parse_opts+0x1ca>
    1796:	48 8b 05 8b 28 00 00 	mov    0x288b(%rip),%rax        # 4028 <optarg@@GLIBC_2.2.5>
    179d:	ba 00 00 00 00       	mov    $0x0,%edx
    17a2:	be 00 00 00 00       	mov    $0x0,%esi
    17a7:	48 89 c7             	mov    %rax,%rdi
    17aa:	e8 a1 fa ff ff       	callq  1250 <strtol@plt>
    17af:	89 05 9b 28 00 00    	mov    %eax,0x289b(%rip)        # 4050 <block_length>
    17b5:	e9 b2 00 00 00       	jmpq   186c <parse_opts+0x1ca>
    17ba:	0f b6 05 77 28 00 00 	movzbl 0x2877(%rip),%eax        # 4038 <mode>
    17c1:	83 c8 20             	or     $0x20,%eax
    17c4:	88 05 6e 28 00 00    	mov    %al,0x286e(%rip)        # 4038 <mode>
    17ca:	e9 9d 00 00 00       	jmpq   186c <parse_opts+0x1ca>
    17cf:	0f b6 05 62 28 00 00 	movzbl 0x2862(%rip),%eax        # 4038 <mode>
    17d6:	83 c8 01             	or     $0x1,%eax
    17d9:	88 05 59 28 00 00    	mov    %al,0x2859(%rip)        # 4038 <mode>
    17df:	e9 88 00 00 00       	jmpq   186c <parse_opts+0x1ca>
    17e4:	0f b6 05 4d 28 00 00 	movzbl 0x284d(%rip),%eax        # 4038 <mode>
    17eb:	83 c8 02             	or     $0x2,%eax
    17ee:	88 05 44 28 00 00    	mov    %al,0x2844(%rip)        # 4038 <mode>
    17f4:	eb 76                	jmp    186c <parse_opts+0x1ca>
    17f6:	0f b6 05 3b 28 00 00 	movzbl 0x283b(%rip),%eax        # 4038 <mode>
    17fd:	83 c8 08             	or     $0x8,%eax
    1800:	88 05 32 28 00 00    	mov    %al,0x2832(%rip)        # 4038 <mode>
    1806:	eb 64                	jmp    186c <parse_opts+0x1ca>
    1808:	0f b6 05 29 28 00 00 	movzbl 0x2829(%rip),%eax        # 4038 <mode>
    180f:	83 c8 04             	or     $0x4,%eax
    1812:	88 05 20 28 00 00    	mov    %al,0x2820(%rip)        # 4038 <mode>
    1818:	eb 52                	jmp    186c <parse_opts+0x1ca>
    181a:	0f b6 05 17 28 00 00 	movzbl 0x2817(%rip),%eax        # 4038 <mode>
    1821:	83 c8 10             	or     $0x10,%eax
    1824:	88 05 0e 28 00 00    	mov    %al,0x280e(%rip)        # 4038 <mode>
    182a:	eb 40                	jmp    186c <parse_opts+0x1ca>
    182c:	0f b6 05 05 28 00 00 	movzbl 0x2805(%rip),%eax        # 4038 <mode>
    1833:	83 c8 40             	or     $0x40,%eax
    1836:	88 05 fc 27 00 00    	mov    %al,0x27fc(%rip)        # 4038 <mode>
    183c:	eb 2e                	jmp    186c <parse_opts+0x1ca>
    183e:	0f b6 05 f3 27 00 00 	movzbl 0x27f3(%rip),%eax        # 4038 <mode>
    1845:	83 c8 80             	or     $0xffffff80,%eax
    1848:	88 05 ea 27 00 00    	mov    %al,0x27ea(%rip)        # 4038 <mode>
    184e:	eb 1c                	jmp    186c <parse_opts+0x1ca>
    1850:	c7 05 fa 27 00 00 01 	movl   $0x1,0x27fa(%rip)        # 4054 <quiet>
    1857:	00 00 00 
    185a:	eb 10                	jmp    186c <parse_opts+0x1ca>
    185c:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
    1860:	48 8b 00             	mov    (%rax),%rax
    1863:	48 89 c7             	mov    %rax,%rdi
    1866:	e8 f9 fd ff ff       	callq  1664 <print_usage>
    186b:	90                   	nop
    186c:	e9 44 fe ff ff       	jmpq   16b5 <parse_opts+0x13>
    1871:	90                   	nop
    1872:	90                   	nop
    1873:	c9                   	leaveq 
    1874:	c3                   	retq   

0000000000001875 <parse_transfer>:
    1875:	f3 0f 1e fa          	endbr64 
    1879:	55                   	push   %rbp
    187a:	48 89 e5             	mov    %rsp,%rbp
    187d:	48 81 ec 00 10 00 00 	sub    $0x1000,%rsp
    1884:	48 83 0c 24 00       	orq    $0x0,(%rsp)
    1889:	48 81 ec 00 10 00 00 	sub    $0x1000,%rsp
    1890:	48 83 0c 24 00       	orq    $0x0,(%rsp)
    1895:	48 83 ec 40          	sub    $0x40,%rsp
    1899:	48 89 bd c8 df ff ff 	mov    %rdi,-0x2038(%rbp)
    18a0:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    18a7:	00 00 
    18a9:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    18ad:	31 c0                	xor    %eax,%eax
    18af:	c7 85 dc df ff ff 00 	movl   $0x0,-0x2024(%rbp)
    18b6:	00 00 00 
    18b9:	48 8b 85 c8 df ff ff 	mov    -0x2038(%rbp),%rax
    18c0:	48 8d 35 bd 0a 00 00 	lea    0xabd(%rip),%rsi        # 2384 <_IO_stdin_used+0x384>
    18c7:	48 89 c7             	mov    %rax,%rdi
    18ca:	e8 f1 f9 ff ff       	callq  12c0 <strtok@plt>
    18cf:	48 89 85 e0 df ff ff 	mov    %rax,-0x2020(%rbp)
    18d6:	e9 62 01 00 00       	jmpq   1a3d <parse_transfer+0x1c8>
    18db:	48 8b 85 e0 df ff ff 	mov    -0x2020(%rbp),%rax
    18e2:	0f b6 00             	movzbl (%rax),%eax
    18e5:	3c 62                	cmp    $0x62,%al
    18e7:	75 2c                	jne    1915 <parse_transfer+0xa0>
    18e9:	48 83 85 e0 df ff ff 	addq   $0x1,-0x2020(%rbp)
    18f0:	01 
    18f1:	48 8b 85 e0 df ff ff 	mov    -0x2020(%rbp),%rax
    18f8:	ba 00 00 00 00       	mov    $0x0,%edx
    18fd:	be 00 00 00 00       	mov    $0x0,%esi
    1902:	48 89 c7             	mov    %rax,%rdi
    1905:	e8 46 f9 ff ff       	callq  1250 <strtol@plt>
    190a:	88 05 00 27 00 00    	mov    %al,0x2700(%rip)        # 4010 <bits>
    1910:	e9 10 01 00 00       	jmpq   1a25 <parse_transfer+0x1b0>
    1915:	48 8b 85 e0 df ff ff 	mov    -0x2020(%rbp),%rax
    191c:	0f b6 00             	movzbl (%rax),%eax
    191f:	3c 40                	cmp    $0x40,%al
    1921:	0f 85 c8 00 00 00    	jne    19ef <parse_transfer+0x17a>
    1927:	48 83 85 e0 df ff ff 	addq   $0x1,-0x2020(%rbp)
    192e:	01 
    192f:	48 8b 85 e0 df ff ff 	mov    -0x2020(%rbp),%rax
    1936:	48 8d 35 49 0a 00 00 	lea    0xa49(%rip),%rsi        # 2386 <_IO_stdin_used+0x386>
    193d:	48 89 c7             	mov    %rax,%rdi
    1940:	e8 5b f9 ff ff       	callq  12a0 <fopen@plt>
    1945:	48 89 85 e8 df ff ff 	mov    %rax,-0x2018(%rbp)
    194c:	48 83 bd e8 df ff ff 	cmpq   $0x0,-0x2018(%rbp)
    1953:	00 
    1954:	75 2d                	jne    1983 <parse_transfer+0x10e>
    1956:	48 8d 3d 2c 0a 00 00 	lea    0xa2c(%rip),%rdi        # 2389 <_IO_stdin_used+0x389>
    195d:	e8 4e f9 ff ff       	callq  12b0 <perror@plt>
    1962:	bf 01 00 00 00       	mov    $0x1,%edi
    1967:	e8 64 f9 ff ff       	callq  12d0 <exit@plt>
    196c:	8b 95 dc df ff ff    	mov    -0x2024(%rbp),%edx
    1972:	48 8d 85 f0 df ff ff 	lea    -0x2010(%rbp),%rax
    1979:	89 d6                	mov    %edx,%esi
    197b:	48 89 c7             	mov    %rax,%rdi
    197e:	e8 67 fa ff ff       	callq  13ea <add_transfer>
    1983:	48 8b 95 e8 df ff ff 	mov    -0x2018(%rbp),%rdx
    198a:	48 8d 85 f0 df ff ff 	lea    -0x2010(%rbp),%rax
    1991:	48 89 d1             	mov    %rdx,%rcx
    1994:	ba 00 08 00 00       	mov    $0x800,%edx
    1999:	be 01 00 00 00       	mov    $0x1,%esi
    199e:	48 89 c7             	mov    %rax,%rdi
    19a1:	e8 2a f8 ff ff       	callq  11d0 <fread@plt>
    19a6:	89 85 dc df ff ff    	mov    %eax,-0x2024(%rbp)
    19ac:	83 bd dc df ff ff 00 	cmpl   $0x0,-0x2024(%rbp)
    19b3:	7f b7                	jg     196c <parse_transfer+0xf7>
    19b5:	48 8b 85 e8 df ff ff 	mov    -0x2018(%rbp),%rax
    19bc:	48 89 c7             	mov    %rax,%rdi
    19bf:	e8 fc f7 ff ff       	callq  11c0 <ferror@plt>
    19c4:	85 c0                	test   %eax,%eax
    19c6:	74 16                	je     19de <parse_transfer+0x169>
    19c8:	48 8d 3d d4 09 00 00 	lea    0x9d4(%rip),%rdi        # 23a3 <_IO_stdin_used+0x3a3>
    19cf:	e8 dc f8 ff ff       	callq  12b0 <perror@plt>
    19d4:	bf 01 00 00 00       	mov    $0x1,%edi
    19d9:	e8 f2 f8 ff ff       	callq  12d0 <exit@plt>
    19de:	48 8b 85 e8 df ff ff 	mov    -0x2018(%rbp),%rax
    19e5:	48 89 c7             	mov    %rax,%rdi
    19e8:	e8 f3 f7 ff ff       	callq  11e0 <fclose@plt>
    19ed:	eb 36                	jmp    1a25 <parse_transfer+0x1b0>
    19ef:	48 8b 85 e0 df ff ff 	mov    -0x2020(%rbp),%rax
    19f6:	ba 00 00 00 00       	mov    $0x0,%edx
    19fb:	be 00 00 00 00       	mov    $0x0,%esi
    1a00:	48 89 c7             	mov    %rax,%rdi
    1a03:	e8 48 f8 ff ff       	callq  1250 <strtol@plt>
    1a08:	48 89 c1             	mov    %rax,%rcx
    1a0b:	8b 85 dc df ff ff    	mov    -0x2024(%rbp),%eax
    1a11:	8d 50 01             	lea    0x1(%rax),%edx
    1a14:	89 95 dc df ff ff    	mov    %edx,-0x2024(%rbp)
    1a1a:	89 ca                	mov    %ecx,%edx
    1a1c:	48 98                	cltq   
    1a1e:	88 94 05 f0 df ff ff 	mov    %dl,-0x2010(%rbp,%rax,1)
    1a25:	48 8d 35 58 09 00 00 	lea    0x958(%rip),%rsi        # 2384 <_IO_stdin_used+0x384>
    1a2c:	bf 00 00 00 00       	mov    $0x0,%edi
    1a31:	e8 8a f8 ff ff       	callq  12c0 <strtok@plt>
    1a36:	48 89 85 e0 df ff ff 	mov    %rax,-0x2020(%rbp)
    1a3d:	48 83 bd e0 df ff ff 	cmpq   $0x0,-0x2020(%rbp)
    1a44:	00 
    1a45:	0f 85 90 fe ff ff    	jne    18db <parse_transfer+0x66>
    1a4b:	83 bd dc df ff ff 00 	cmpl   $0x0,-0x2024(%rbp)
    1a52:	7e 17                	jle    1a6b <parse_transfer+0x1f6>
    1a54:	8b 95 dc df ff ff    	mov    -0x2024(%rbp),%edx
    1a5a:	48 8d 85 f0 df ff ff 	lea    -0x2010(%rbp),%rax
    1a61:	89 d6                	mov    %edx,%esi
    1a63:	48 89 c7             	mov    %rax,%rdi
    1a66:	e8 7f f9 ff ff       	callq  13ea <add_transfer>
    1a6b:	90                   	nop
    1a6c:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1a70:	64 48 33 04 25 28 00 	xor    %fs:0x28,%rax
    1a77:	00 00 
    1a79:	74 05                	je     1a80 <parse_transfer+0x20b>
    1a7b:	e8 70 f7 ff ff       	callq  11f0 <__stack_chk_fail@plt>
    1a80:	c9                   	leaveq 
    1a81:	c3                   	retq   

0000000000001a82 <make_bulk_transfer>:
    1a82:	f3 0f 1e fa          	endbr64 
    1a86:	55                   	push   %rbp
    1a87:	48 89 e5             	mov    %rsp,%rbp
    1a8a:	48 83 ec 20          	sub    $0x20,%rsp
    1a8e:	89 7d ec             	mov    %edi,-0x14(%rbp)
    1a91:	8b 45 ec             	mov    -0x14(%rbp),%eax
    1a94:	48 98                	cltq   
    1a96:	48 89 c7             	mov    %rax,%rdi
    1a99:	e8 d2 f7 ff ff       	callq  1270 <malloc@plt>
    1a9e:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1aa2:	48 83 7d f8 00       	cmpq   $0x0,-0x8(%rbp)
    1aa7:	75 0c                	jne    1ab5 <make_bulk_transfer+0x33>
    1aa9:	48 8d 3d 0d 09 00 00 	lea    0x90d(%rip),%rdi        # 23bd <_IO_stdin_used+0x3bd>
    1ab0:	e8 14 f9 ff ff       	callq  13c9 <pabort>
    1ab5:	8b 45 ec             	mov    -0x14(%rbp),%eax
    1ab8:	48 63 d0             	movslq %eax,%rdx
    1abb:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1abf:	be cb 00 00 00       	mov    $0xcb,%esi
    1ac4:	48 89 c7             	mov    %rax,%rdi
    1ac7:	e8 54 f7 ff ff       	callq  1220 <memset@plt>
    1acc:	8b 55 ec             	mov    -0x14(%rbp),%edx
    1acf:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1ad3:	89 d6                	mov    %edx,%esi
    1ad5:	48 89 c7             	mov    %rax,%rdi
    1ad8:	e8 0d f9 ff ff       	callq  13ea <add_transfer>
    1add:	90                   	nop
    1ade:	c9                   	leaveq 
    1adf:	c3                   	retq   

0000000000001ae0 <main>:
    1ae0:	f3 0f 1e fa          	endbr64 
    1ae4:	55                   	push   %rbp
    1ae5:	48 89 e5             	mov    %rsp,%rbp
    1ae8:	48 83 ec 20          	sub    $0x20,%rsp
    1aec:	89 7d ec             	mov    %edi,-0x14(%rbp)
    1aef:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
    1af3:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%rbp)
    1afa:	48 8b 55 e0          	mov    -0x20(%rbp),%rdx
    1afe:	8b 45 ec             	mov    -0x14(%rbp),%eax
    1b01:	48 89 d6             	mov    %rdx,%rsi
    1b04:	89 c7                	mov    %eax,%edi
    1b06:	e8 97 fb ff ff       	callq  16a2 <parse_opts>
    1b0b:	8b 05 3f 25 00 00    	mov    0x253f(%rip),%eax        # 4050 <block_length>
    1b11:	85 c0                	test   %eax,%eax
    1b13:	7e 3a                	jle    1b4f <main+0x6f>
    1b15:	8b 05 35 25 00 00    	mov    0x2535(%rip),%eax        # 4050 <block_length>
    1b1b:	89 c7                	mov    %eax,%edi
    1b1d:	e8 60 ff ff ff       	callq  1a82 <make_bulk_transfer>
    1b22:	eb 36                	jmp    1b5a <main+0x7a>
    1b24:	8b 05 f6 24 00 00    	mov    0x24f6(%rip),%eax        # 4020 <optind@@GLIBC_2.2.5>
    1b2a:	8d 50 01             	lea    0x1(%rax),%edx
    1b2d:	89 15 ed 24 00 00    	mov    %edx,0x24ed(%rip)        # 4020 <optind@@GLIBC_2.2.5>
    1b33:	48 98                	cltq   
    1b35:	48 8d 14 c5 00 00 00 	lea    0x0(,%rax,8),%rdx
    1b3c:	00 
    1b3d:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
    1b41:	48 01 d0             	add    %rdx,%rax
    1b44:	48 8b 00             	mov    (%rax),%rax
    1b47:	48 89 c7             	mov    %rax,%rdi
    1b4a:	e8 26 fd ff ff       	callq  1875 <parse_transfer>
    1b4f:	8b 05 cb 24 00 00    	mov    0x24cb(%rip),%eax        # 4020 <optind@@GLIBC_2.2.5>
    1b55:	39 45 ec             	cmp    %eax,-0x14(%rbp)
    1b58:	7f ca                	jg     1b24 <main+0x44>
    1b5a:	48 8b 05 b7 24 00 00 	mov    0x24b7(%rip),%rax        # 4018 <device>
    1b61:	be 02 00 00 00       	mov    $0x2,%esi
    1b66:	48 89 c7             	mov    %rax,%rdi
    1b69:	b8 00 00 00 00       	mov    $0x0,%eax
    1b6e:	e8 1d f7 ff ff       	callq  1290 <open@plt>
    1b73:	89 45 fc             	mov    %eax,-0x4(%rbp)
    1b76:	83 7d fc 00          	cmpl   $0x0,-0x4(%rbp)
    1b7a:	79 0c                	jns    1b88 <main+0xa8>
    1b7c:	48 8d 3d 48 08 00 00 	lea    0x848(%rip),%rdi        # 23cb <_IO_stdin_used+0x3cb>
    1b83:	e8 41 f8 ff ff       	callq  13c9 <pabort>
    1b88:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1b8b:	48 8d 15 a6 24 00 00 	lea    0x24a6(%rip),%rdx        # 4038 <mode>
    1b92:	be 01 6b 01 40       	mov    $0x40016b01,%esi
    1b97:	89 c7                	mov    %eax,%edi
    1b99:	b8 00 00 00 00       	mov    $0x0,%eax
    1b9e:	e8 8d f6 ff ff       	callq  1230 <ioctl@plt>
    1ba3:	89 45 f8             	mov    %eax,-0x8(%rbp)
    1ba6:	83 7d f8 ff          	cmpl   $0xffffffff,-0x8(%rbp)
    1baa:	75 0c                	jne    1bb8 <main+0xd8>
    1bac:	48 8d 3d 2a 08 00 00 	lea    0x82a(%rip),%rdi        # 23dd <_IO_stdin_used+0x3dd>
    1bb3:	e8 11 f8 ff ff       	callq  13c9 <pabort>
    1bb8:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1bbb:	48 8d 15 76 24 00 00 	lea    0x2476(%rip),%rdx        # 4038 <mode>
    1bc2:	be 01 6b 01 80       	mov    $0x80016b01,%esi
    1bc7:	89 c7                	mov    %eax,%edi
    1bc9:	b8 00 00 00 00       	mov    $0x0,%eax
    1bce:	e8 5d f6 ff ff       	callq  1230 <ioctl@plt>
    1bd3:	89 45 f8             	mov    %eax,-0x8(%rbp)
    1bd6:	83 7d f8 ff          	cmpl   $0xffffffff,-0x8(%rbp)
    1bda:	75 0c                	jne    1be8 <main+0x108>
    1bdc:	48 8d 3d 0d 08 00 00 	lea    0x80d(%rip),%rdi        # 23f0 <_IO_stdin_used+0x3f0>
    1be3:	e8 e1 f7 ff ff       	callq  13c9 <pabort>
    1be8:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1beb:	48 8d 15 1e 24 00 00 	lea    0x241e(%rip),%rdx        # 4010 <bits>
    1bf2:	be 03 6b 01 40       	mov    $0x40016b03,%esi
    1bf7:	89 c7                	mov    %eax,%edi
    1bf9:	b8 00 00 00 00       	mov    $0x0,%eax
    1bfe:	e8 2d f6 ff ff       	callq  1230 <ioctl@plt>
    1c03:	89 45 f8             	mov    %eax,-0x8(%rbp)
    1c06:	83 7d f8 ff          	cmpl   $0xffffffff,-0x8(%rbp)
    1c0a:	75 0c                	jne    1c18 <main+0x138>
    1c0c:	48 8d 3d f0 07 00 00 	lea    0x7f0(%rip),%rdi        # 2403 <_IO_stdin_used+0x403>
    1c13:	e8 b1 f7 ff ff       	callq  13c9 <pabort>
    1c18:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1c1b:	48 8d 15 ee 23 00 00 	lea    0x23ee(%rip),%rdx        # 4010 <bits>
    1c22:	be 03 6b 01 80       	mov    $0x80016b03,%esi
    1c27:	89 c7                	mov    %eax,%edi
    1c29:	b8 00 00 00 00       	mov    $0x0,%eax
    1c2e:	e8 fd f5 ff ff       	callq  1230 <ioctl@plt>
    1c33:	89 45 f8             	mov    %eax,-0x8(%rbp)
    1c36:	83 7d f8 ff          	cmpl   $0xffffffff,-0x8(%rbp)
    1c3a:	75 0c                	jne    1c48 <main+0x168>
    1c3c:	48 8d 3d d8 07 00 00 	lea    0x7d8(%rip),%rdi        # 241b <_IO_stdin_used+0x41b>
    1c43:	e8 81 f7 ff ff       	callq  13c9 <pabort>
    1c48:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1c4b:	48 8d 15 c2 23 00 00 	lea    0x23c2(%rip),%rdx        # 4014 <speed>
    1c52:	be 04 6b 04 40       	mov    $0x40046b04,%esi
    1c57:	89 c7                	mov    %eax,%edi
    1c59:	b8 00 00 00 00       	mov    $0x0,%eax
    1c5e:	e8 cd f5 ff ff       	callq  1230 <ioctl@plt>
    1c63:	89 45 f8             	mov    %eax,-0x8(%rbp)
    1c66:	83 7d f8 ff          	cmpl   $0xffffffff,-0x8(%rbp)
    1c6a:	75 0c                	jne    1c78 <main+0x198>
    1c6c:	48 8d 3d c0 07 00 00 	lea    0x7c0(%rip),%rdi        # 2433 <_IO_stdin_used+0x433>
    1c73:	e8 51 f7 ff ff       	callq  13c9 <pabort>
    1c78:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1c7b:	48 8d 15 92 23 00 00 	lea    0x2392(%rip),%rdx        # 4014 <speed>
    1c82:	be 04 6b 04 80       	mov    $0x80046b04,%esi
    1c87:	89 c7                	mov    %eax,%edi
    1c89:	b8 00 00 00 00       	mov    $0x0,%eax
    1c8e:	e8 9d f5 ff ff       	callq  1230 <ioctl@plt>
    1c93:	89 45 f8             	mov    %eax,-0x8(%rbp)
    1c96:	83 7d f8 ff          	cmpl   $0xffffffff,-0x8(%rbp)
    1c9a:	75 0c                	jne    1ca8 <main+0x1c8>
    1c9c:	48 8d 3d a7 07 00 00 	lea    0x7a7(%rip),%rdi        # 244a <_IO_stdin_used+0x44a>
    1ca3:	e8 21 f7 ff ff       	callq  13c9 <pabort>
    1ca8:	8b 05 a2 23 00 00    	mov    0x23a2(%rip),%eax        # 4050 <block_length>
    1cae:	85 c0                	test   %eax,%eax
    1cb0:	7e 2d                	jle    1cdf <main+0x1ff>
    1cb2:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%rbp)
    1cb9:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1cbc:	89 c7                	mov    %eax,%edi
    1cbe:	e8 2d f9 ff ff       	callq  15f0 <transfer>
    1cc3:	8b 45 f4             	mov    -0xc(%rbp),%eax
    1cc6:	89 c6                	mov    %eax,%esi
    1cc8:	48 8d 3d 92 07 00 00 	lea    0x792(%rip),%rdi        # 2461 <_IO_stdin_used+0x461>
    1ccf:	b8 00 00 00 00       	mov    $0x0,%eax
    1cd4:	e8 37 f5 ff ff       	callq  1210 <printf@plt>
    1cd9:	83 45 f4 01          	addl   $0x1,-0xc(%rbp)
    1cdd:	eb da                	jmp    1cb9 <main+0x1d9>
    1cdf:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1ce2:	89 c7                	mov    %eax,%edi
    1ce4:	e8 07 f9 ff ff       	callq  15f0 <transfer>
    1ce9:	8b 05 65 23 00 00    	mov    0x2365(%rip),%eax        # 4054 <quiet>
    1cef:	85 c0                	test   %eax,%eax
    1cf1:	75 05                	jne    1cf8 <main+0x218>
    1cf3:	e8 12 f8 ff ff       	callq  150a <show_spi_xfrs>
    1cf8:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1cfb:	89 c7                	mov    %eax,%edi
    1cfd:	e8 3e f5 ff ff       	callq  1240 <close@plt>
    1d02:	8b 45 f8             	mov    -0x8(%rbp),%eax
    1d05:	c9                   	leaveq 
    1d06:	c3                   	retq   
    1d07:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
    1d0e:	00 00 

0000000000001d10 <__libc_csu_init>:
    1d10:	f3 0f 1e fa          	endbr64 
    1d14:	41 57                	push   %r15
    1d16:	4c 8d 3d f3 1d 00 00 	lea    0x1df3(%rip),%r15        # 3b10 <__frame_dummy_init_array_entry>
    1d1d:	41 56                	push   %r14
    1d1f:	49 89 d6             	mov    %rdx,%r14
    1d22:	41 55                	push   %r13
    1d24:	49 89 f5             	mov    %rsi,%r13
    1d27:	41 54                	push   %r12
    1d29:	41 89 fc             	mov    %edi,%r12d
    1d2c:	55                   	push   %rbp
    1d2d:	48 8d 2d e4 1d 00 00 	lea    0x1de4(%rip),%rbp        # 3b18 <__do_global_dtors_aux_fini_array_entry>
    1d34:	53                   	push   %rbx
    1d35:	4c 29 fd             	sub    %r15,%rbp
    1d38:	48 83 ec 08          	sub    $0x8,%rsp
    1d3c:	e8 bf f2 ff ff       	callq  1000 <_init>
    1d41:	48 c1 fd 03          	sar    $0x3,%rbp
    1d45:	74 1f                	je     1d66 <__libc_csu_init+0x56>
    1d47:	31 db                	xor    %ebx,%ebx
    1d49:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
    1d50:	4c 89 f2             	mov    %r14,%rdx
    1d53:	4c 89 ee             	mov    %r13,%rsi
    1d56:	44 89 e7             	mov    %r12d,%edi
    1d59:	41 ff 14 df          	callq  *(%r15,%rbx,8)
    1d5d:	48 83 c3 01          	add    $0x1,%rbx
    1d61:	48 39 dd             	cmp    %rbx,%rbp
    1d64:	75 ea                	jne    1d50 <__libc_csu_init+0x40>
    1d66:	48 83 c4 08          	add    $0x8,%rsp
    1d6a:	5b                   	pop    %rbx
    1d6b:	5d                   	pop    %rbp
    1d6c:	41 5c                	pop    %r12
    1d6e:	41 5d                	pop    %r13
    1d70:	41 5e                	pop    %r14
    1d72:	41 5f                	pop    %r15
    1d74:	c3                   	retq   
    1d75:	66 66 2e 0f 1f 84 00 	data16 nopw %cs:0x0(%rax,%rax,1)
    1d7c:	00 00 00 00 

0000000000001d80 <__libc_csu_fini>:
    1d80:	f3 0f 1e fa          	endbr64 
    1d84:	c3                   	retq   

Disassembly of section .fini:

0000000000001d88 <_fini>:
    1d88:	f3 0f 1e fa          	endbr64 
    1d8c:	48 83 ec 08          	sub    $0x8,%rsp
    1d90:	48 83 c4 08          	add    $0x8,%rsp
    1d94:	c3                   	retq   
